package com.qingzhuge.pay.entity;

import com.qingzhuge.entity.BasePkLongEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.Entity;
import javax.persistence.Table;

/**
 * @author : zero.xiao
 * @description : 退款单
 * @date :2019-04-28 15:41
 * @modified :
 */
@Getter
@Setter
@Entity
@Table(name = "sys_order_refund")
public class SysOrderRefund extends BasePkLongEntity {
    private Boolean status;
    /**终端设备号*/
    @ApiModelProperty("终端设备号")
    private String deviceInfo;
    /**商户订单号,商户侧传给微信的订单号*/
    @ApiModelProperty("商户订单号")
    private String outTradeNo;
    /**订单总金额，单位为分，只能为整数，详见支付金额*/
    @ApiModelProperty("订单总金额")
    private Integer totalFee;
    /**
     * <pre>
     * 字段名：微信订单号.
     * 变量名：transaction_id
     * 是否必填：跟out_trade_no二选一
     * 类型：String(28)
     * 示例值：1217752501201400000000000000
     * 描述：微信生成的订单号，在支付通知中有返回
     * </pre>
     */
    @ApiModelProperty("微信订单号")
    private String transactionId;


    /**
     * <pre>
     * 字段名：商户退款单号.
     * 变量名：out_refund_no
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1217752501201400000000000000
     * 描述：商户系统内部的退款单号，商户系统内部唯一，同一退款单号多次请求只退一笔
     * </pre>
     */
    private String outRefundNo;


    /**
     * <pre>
     * 字段名：退款金额.
     * 变量名：refund_fee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：退款总金额，订单总金额，单位为分，只能为整数，详见支付金额
     * </pre>
     */
    private Integer refundFee;
    /**实际退款金额*/
    private Integer fee;
    /**
     * <pre>
     * 字段名：货币种类.
     * 变量名：refund_fee_type
     * 是否必填：否
     * 类型：String(8)
     * 示例值：CNY
     * 描述：货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型
     * </pre>
     */
    private String refundFeeType;
    /**
     * <pre>
     * 字段名：操作员.
     * 变量名：op_user_id
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1900000109
     * 描述：操作员帐号, 默认为商户号
     * </pre>
     */
    private String opUserId;
    /**
     * <pre>
     * 字段名：退款资金来源.
     * 变量名：refund_account
     * 是否必填：否
     * 类型：String(30)
     * 示例值：REFUND_SOURCE_RECHARGE_FUNDS
     * 描述：仅针对老资金流商户使用，
     * <li>REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款（默认使用未结算资金退款），
     * <li>REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款
     * </pre>
     */
    private String refundAccount;

    /**
     * <pre>
     * 字段名：退款原因.
     * 变量名：refund_account
     * 是否必填：否
     * 类型：String(80)
     * 示例值：商品已售完
     * 描述：若商户传入，会在下发给用户的退款消息中体现退款原因
     * </pre>
     */
    private String refundDesc;

    /**
     * <pre>
     * 字段名：退款入账账户.
     * 变量名：refund_recv_accout
     * 是否必填：是
     * 类型：String(64)
     * 示例值：招商银行信用卡0403
     * 描述：取当前退款单的退款入账方，1）退回银行卡：{银行名称}{卡类型}{卡尾号}，2）退回支付用户零钱:支付用户零钱 ，3）退还商户: 商户基本账户，商户结算银行账户，4）退回支付用户零钱通: 支付用户零钱通
     * </pre>
     */
    private String refundRecvAccout;
}

